There was only one real shortcoming to POVray, in my opinion - there was no way to declare a "skeleton" and hang objects like blobs on it, then move and manipulate the skeleton.
Until now.
I am in the process of finishing up an "include" file for POVray called bones.inc, which I used to create the little video below. (Update: bones.inc is now available for download here)
Getting to this point took me the better part of a year. It might not look like much, but all of the background work is done - the actual animation of the robot took only a few simple lines of code:
// clock goes from zero to oneOther movements and combinations of movements require only that certain key poses be established - the video above uses only five poses altogether, and individual frames are interpolated between poses.
#declare RunTime = 0;
#if (clock<0.2)StandToRun("Body",clock*5)#else#declare RunTime = (clock - 0.2)*1.25;#end
RunBiped("Body",RunTime)
rotateSkeleton("Body",<0,-60,0>)
I am finishing testing right now, and only have one teensy weensy thing to add - inverse kinematics. The bones.inc include file is fully commented and also fully documented in a ReadMe file, and I'm working on some example skeletons (quadruped, snake, hexapod) and sample movements to make it easier for POVray users to incorporate animated characters in their scenes. The software will be released under the GNU general public license and the documentation under the GNU free documentation license.
Version 1.01 of bones.inc